package com.finalterm.user.handler;

import com.alibaba.csp.sentinel.slots.block.BlockException;
import com.finalterm.common.result.Result;
import com.finalterm.user.vo.UserVO;

public class CustomBlockHandler {
    // 处理限流异常的方法

    /**
     * 自定义限流处理类, 方法必须是public static 的
     * 自定义的兜底方法,要保证方法的的声明一致
     * 必须在形参中加入 BlockException 异常声明
     * 添加熔断和限流规则指定的必须是 value的内容
     * @param userId
     * @param ex
     * @return
     */
    public static Result<UserVO> handleException(Long userId, BlockException ex) {
        return Result.error("请求过于频繁，请稍后再试！ (Sentinel 限流触发)");
    }

    // 可选：多个资源的处理方法
    public static String handleAnotherException(BlockException ex) {
        return "另一资源限流触发";
    }
}
